腾讯[官].js 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. var rule = {
  2. title: '腾云驾雾[官]',
  3. host:'https://v.%71%71.com',
  4. // homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=choice&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
  5. homeUrl: '/x/bu/pagesheet/list?_all=1&append=1&channel=cartoon&listpage=1&offset=0&pagesize=21&iarea=-1&sort=18',
  6. detailUrl: 'https://node.video.%71%71.com/x/api/float_vinfo2?cid=fyid',
  7. // searchUrl: '/x/search/?q=**&cur=fypage',
  8. searchUrl:'/x/search/?q=**&stag=fypage',
  9. searchable: 2,
  10. filterable: 1,
  11. multi: 1,
  12. // url:'/channel/fyclass?listpage=fypage&channel=fyclass&sort=18&_all=1',
  13. url: '/x/bu/pagesheet/list?_all=1&append=1&channel=fyclass&listpage=1&offset=((fypage-1)*21)&pagesize=21&iarea=-1',
  14. // filter_url: 'sort={{fl.sort or 18}}&year={{fl.year}}&pay={{fl.pay}}',
  15. filter_url: 'sort={{fl.sort or 75}}&year={{fl.year}}&pay={{fl.pay}}',
  16. filter: 'H4sIAAAAAAAAA+2UzUrDQBCA32XOEZLUJrGvIj0saaDBNisxBkIJCG3Fi4oepIg3EQoieqiH+vM23Zq+hRuaZLZ4ce9z2/lmd2d2+NgR+H0e+gF0DkdwFGTQgRMeJ2BAxIaSwvrqVnxcyzhlg9PttqjED2c/45cSy8DyIDcavr57q/lBw8XTd/E6qbnT8M3zTFyc72RtC/Jumd+2c8wy7KZ4nxSL5Z9uxHS+Gc+r83sWVp1eVttl4Dluk1h93YubWZVwduplAYuxoFguVp+P/y5om/Z+/YxyqfAW8pbKbeS2yi3kO/ebyE2Fy1nXXBm7DDzknspd5K7KHeSOytvI2+XAugYkKWlD2mhrM+RpSB8OmaNvTsriMEgycofc0XbHZ3HCeUTukDv67vTDQY/MIXO0zelxn5M4JI6mOPkvgswSEpgPAAA=',
  17. headers: {
  18. 'Cookie': 'pgv_info=ssid=s7841638848; pgv_pvid=6563987418; fqm_pvqid=937424e6-00da-4f14-ac1d-dc67e98094c9; fqm_sessionid=e45ad9d3-aaae-4a58-b23e-0bffe422654f; video_guid=337b8048ad48385d; qq_domain_video_guid_verify=337b8048ad48385d; idt=1719628365; uin=o3324789281; skey=M9l7URN90s; RK=0uFZwjqX6k; ptcz=dc3ab8193436c45e26709e896b8589c1fdcbc3f574411c1a65632bf527953254; luin=o3324789281; lskey=000100002f487e7fde3f89546d1c719d10f6bf71edec0f1eb5ddcd0a1657ef64f6f26522f4854ea78927308a; pac_uid=0_j5KFrYKMrTssd; vversion_name=8.2.95; video_omgid=337b8048ad48385d; _qimei_uuid42=18707133701100484a6471e9875ed7f77d7b684ea4; _qimei_q36=; _qimei_h38=397d22734a6471e9875ed7f709000000518707; lcad_o_minduid=eejsj_V0vSyEsHh40hVzNH8rRhE3K1L5; lcad_appuser=790B4FCF733AE1B3; lcad_ad_session_id=yotgnbydcm35y; suid=0_j5KFrYKMrTssd; video_platform=2; o_cookie=3324789281; ts_uid=1535334161; bucket_id=9231003; video_platform=2; tvfe_search_uid=d63cf680-0ad7-4b28-941a-df1a118a1aaa; player_rfid=a54ada88c5395658bd063c435de77a08_1720929658; player_spts=0|0|false|false|false|true|true; tab_experiment_str=11040944#100000#11892118; _qimei_fingerprint=be3236f8dff235d01851cde064c18842; ts_last=v.qq.com/x/search/; ptag=; ad_play_index=110',
  19. 'User-Agent': 'PC'
  20. },
  21. timeout: 5000,
  22. // class_parse:'.site_channel a;a&&Text;a&&href;channel/(.*)',
  23. cate_exclude: '会员|游戏|全部',
  24. class_name: '精选&电视剧&电影&综艺&动漫&少儿&纪录片',
  25. class_url: 'choice&tv&movie&variety&cartoon&child&doco',
  26. limit: 20,
  27. // play_parse:true,
  28. // 手动调用解析请求json的url,此lazy不方便
  29. lazy: 'js:input="https://cache.json.icu/home/api?type=ys&uid=292796&key=fnoryABDEFJNPQV269&url="+input.split("?")[0];log(input);let html=JSON.parse(request(input));log(html);input=html.url||input',
  30. 推荐: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
  31. 一级: '.list_item;img&&alt;img&&src;a&&Text;a&&data-float',
  32. 二级: $js.toString(() => {
  33. VOD = {};
  34. let d = [];
  35. let video_list = [];
  36. let video_lists = [];
  37. let list = [];
  38. let QZOutputJson;
  39. let html = fetch(input, fetch_params);
  40. let sourceId = /get_playsource/.test(input) ? input.match(/id=(\d*?)&/)[1] : input.split("cid=")[1];
  41. let cid = sourceId;
  42. let detailUrl = "https://v.%71%71.com/detail/m/" + cid + ".html";
  43. log("详情页:" + detailUrl);
  44. pdfh = jsp.pdfh;
  45. pd = jsp.pd;
  46. try {
  47. let json = JSON.parse(html);
  48. VOD = {
  49. vod_url: input,
  50. vod_name: json.c.title,
  51. type_name: json.typ.join(","),
  52. vod_actor: json.nam.join(","),
  53. vod_year: json.c.year,
  54. vod_content: json.c.description,
  55. vod_remarks: json.rec,
  56. vod_pic: urljoin2(input, json.c.pic)
  57. }
  58. } catch (e) {
  59. log("解析片名海报等基础信息发生错误:" + e.message)
  60. }
  61. if (/get_playsource/.test(input)) {
  62. eval(html);
  63. let indexList = QZOutputJson.PlaylistItem.indexList;
  64. indexList.forEach(function (it) {
  65. let dataUrl = "https://s.video.qq.com/get_playsource?id=" + sourceId + "&plat=2&type=4&data_type=3&range=" + it + "&video_type=10&plname=qq&otype=json";
  66. eval(fetch(dataUrl, fetch_params));
  67. let vdata = QZOutputJson.PlaylistItem.videoPlayList;
  68. vdata.forEach(function (item) {
  69. d.push({
  70. title: item.title,
  71. pic_url: item.pic,
  72. desc: item.episode_number + "\t\t\t播放量:" + item.thirdLine,
  73. url: item.playUrl
  74. })
  75. });
  76. video_lists = video_lists.concat(vdata)
  77. })
  78. } else {
  79. let json = JSON.parse(html);
  80. video_lists = json.c.video_ids;
  81. let url = "https://v.qq.com/x/cover/" + sourceId + ".html";
  82. if (video_lists.length === 1) {
  83. let vid = video_lists[0];
  84. url = "https://v.qq.com/x/cover/" + cid + "/" + vid + ".html";
  85. d.push({
  86. title: "在线播放",
  87. url: url
  88. })
  89. } else if (video_lists.length > 1) {
  90. for (let i = 0; i < video_lists.length; i += 30) {
  91. video_list.push(video_lists.slice(i, i + 30))
  92. }
  93. video_list.forEach(function (it, idex) {
  94. let o_url = "https://union.video.qq.com/fcgi-bin/data?otype=json&tid=1804&appid=20001238&appkey=6c03bbe9658448a4&union_platform=1&idlist=" + it.join(",");
  95. let o_html = fetch(o_url, fetch_params);
  96. eval(o_html);
  97. QZOutputJson.results.forEach(function (it1) {
  98. it1 = it1.fields;
  99. let url = "https://v.qq.com/x/cover/" + cid + "/" + it1.vid + ".html";
  100. d.push({
  101. title: it1.title,
  102. pic_url: it1.pic160x90.replace("/160", ""),
  103. desc: it1.video_checkup_time,
  104. url: url,
  105. type: it1.category_map && it1.category_map.length > 1 ? it1.category_map[1] : ""
  106. })
  107. })
  108. })
  109. }
  110. }
  111. let yg = d.filter(function (it) {
  112. return it.type && it.type !== "正片"
  113. });
  114. let zp = d.filter(function (it) {
  115. return !(it.type && it.type !== "正片")
  116. });
  117. VOD.vod_play_from = yg.length < 1 ? "qq" : "qq$$$qq 预告及花絮";
  118. VOD.vod_play_url = yg.length < 1 ? d.map(function (it) {
  119. return it.title + "$" + it.url
  120. }).join("#") : [zp, yg].map(function (it) {
  121. return it.map(function (its) {
  122. return its.title + "$" + its.url
  123. }).join("#")
  124. }).join("$$$");
  125. }),
  126. 搜索: $js.toString(() => {
  127. let d = [];
  128. pdfa = jsp.pdfa;
  129. pdfh = jsp.pdfh;
  130. pd = jsp.pd;
  131. let html = request(input);
  132. let baseList = pdfa(html, "body&&.result_item_v");
  133. baseList.forEach(function (it) {
  134. let longText = pdfh(it, ".result_title&&Text");
  135. let shortText = pdfh(it, ".sub&&Text");
  136. let fromTag = pdfh(it, ".result_source&&Text");
  137. let content = pdfh(it, ".desc_text&&Text");
  138. let url = pdfh(it, ".result_item_v&&r-data");
  139. let img = pd(it, ".figure_pic&&src");
  140. url = "https://node.video.qq.com/x/api/float_vinfo2?cid=" + url.match(/.*\/(.*?)\.html/)[1];
  141. log(shortText + "|" + url);
  142. if (fromTag.match(/腾讯/)) {
  143. d.push({
  144. title: longText.split(shortText)[0],
  145. img: img,
  146. url: url,
  147. content: content,
  148. desc: "⭐" + longText.split(shortText)[1] + "-" + shortText
  149. })
  150. }
  151. });
  152. setResult(d);
  153. }),
  154. }